<?php
/**
 * Created by PhpStorm.
 * Author: Shadow
 * Date: 2022/5/31
 * Time: 4:24 下午
 * description: article.php
 * 通过QueryList工具采集列表数据
 *
 * 认识PDO、通过PDO操作数据库（添加、删除、修改、查询）
 * PDO的预处理（？、命名占位符）
 * 面向过程QueryList采集
 * 通过PDO进行入库
 *
 *
 */

require  'vendor/autoload.php';//引入文件
use QL\QueryList;
// 如何去使用这个工具、实现采集
//range() 切片选择器 选择区域
// rule（）采集的规格
// queryData() 获取的数据
# 确定采集的地址
$url = "https://it.ithome.com/ityejie";
$range = ".fl li";// 切割的区域和标准
$rule = [
//    规则名（自定义）=> ['jquery选择器','属性]
    'image' =>['.img img','src'],
    'title' => ["h2 a",'text'],
];// 采集的规则
// 进行采集
$data = QueryList::get($url)->rules($rule)->range($range)->queryData();

print_r($data);

# 采集到的数据、通过PDO的形式进行入库
try {
    $sql = "INSERT INTO article (`title`,`image`,`create_time`) VALUES (?,?,?)";
    $pdo = new PDO("mysql:host=127.0.0.1;dbname=2004a",'root','password');
    $stateObj = $pdo->prepare($sql);
    foreach ($data as $value) {
        $create_time = time();
        $stateObj->bindParam('1',$value['title']);
        $stateObj->bindParam('2',$value['image']);//  参数类型默认是字符串
        $stateObj->bindParam('3',$create_time,PDO::PARAM_INT);//创建时间、我存储的是整数 指定参数类型
        $stateObj->execute();
    }
}catch (PDOException $exception) {
    echo "错误信息";
    print_r($exception->getMessage());
}

